home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / gfx / 3d / irit50src.lha / irit5 / contrib / scripts / wglasses.irt < prev   
Encoding:
Text File  |  1994-04-08  |  5.4 KB  |  167 lines

  1. #Authors: Boris Lavva && ????
  2. # Etud of evening party ready.
  3. #
  4.  
  5. if ( machine == msdos, resolution = 5, resolution = 10 );
  6.  
  7. # Wine glasses.
  8. cross = cbspline( 3,
  9.                 list( ctlpt( E3, 0.000000, 0.0, 0.562000 ),
  10.               ctlpt( E3, 0.038000, 0.0, 0.602000 ),
  11.               ctlpt( E3, 0.394000, 0.0, 0.800000 ),    
  12.               ctlpt( E3, 0.436000, 0.0, 0.884000 ),
  13.                 ctlpt( E3, 0.406353, 0.0, 1.494430 ),
  14.               ctlpt( E3, 0.310000, 0.0, 1.908000 ),    
  15.               ctlpt( E3, 0.322518, 0.0, 1.978670 ),    
  16.               ctlpt( E3, 0.320509, 0.0, 1.979365 ),    
  17.               ctlpt( E3, 0.446353, 0.0, 1.474430 ),    
  18.               ctlpt( E3, 0.486925, 0.0, 0.869266 ),    
  19.               ctlpt( E3, 0.350267, 0.0, 0.739114 ),    
  20.               ctlpt( E3, 0.165326, 0.0, 0.620766 ),    
  21.               ctlpt( E3, 0.092403, 0.0, 0.543362 ),     
  22.               ctlpt( E3, 0.085417, 0.0, 0.169610 ),    
  23.               ctlpt( E3, 0.085989, 0.0, 0.125466 ),    
  24.               ctlpt( E3, 0.452000, 0.0, 0.000000 ),    
  25.               ctlpt( E3, 0.307708, 0.0, 0.030000 ),    
  26.               ctlpt( E3, 0.100000, 0.0, 0.0900000 ),
  27.               ctlpt( E3, 0.000000, 0.0, 0.088000  ) ),    
  28.         list( KV_OPEN ) );
  29.  
  30.  
  31. wglass = surfrev( cross * scale( vector( 0.2, 0.2, 0.2 ) ) );
  32. color( wglass, white );
  33. attrib( wglass, "reflect", 0.2 );
  34. attrib( wglass, "transp", 0.95 );
  35. attrib( wglass, "index", 1.4 );
  36. wglass1 = wglass * trans( vector( 0.6, 0.0, 0.0) );
  37. wglass2 = wglass * trans( vector( 0.0, 0.6, 0.0) );
  38. wglass3 = wglass * trans( vector( -0.6, 0.0, 0.0) );
  39. wglass4 = wglass * trans( vector( 0.0, -0.6, 0.0) );
  40.  
  41.  
  42. #wine bottle
  43.  
  44. cross = cbspline( 3,
  45.               list(
  46.                     ctlpt( E3, 0.032000, 0.000000, 1.088000 ),
  47.                     ctlpt( E3, 0.036000, 0.000000, 0.976000 ),
  48.                     ctlpt( E3, 0.040000, 0.000000, 0.872000 ),
  49.                     ctlpt( E3, 0.056000, 0.000000, 0.762000 ),
  50.                     ctlpt( E3, 0.172000, 0.000000, 0.652000 ),
  51.                     ctlpt( E3, 0.226000, 0.000000, 0.556000 ),
  52.                     ctlpt( E3, 0.210000, 0.000000, 0.420000 ),
  53.                     ctlpt( E3, 0.180000, 0.000000, 0.276000 ),
  54.                     ctlpt( E3, 0.168000, 0.000000, 0.220000 ),
  55.                     ctlpt( E3, 0.168000, 0.000000, 0.176000 ),
  56.                     ctlpt( E3, 0.192000, 0.000000, 0.080000 ),
  57.                     ctlpt( E3, 0.200000, 0.000000, 0.044000 ),
  58.                     ctlpt( E3, 0.192000, 0.000000, 0.012000 ),
  59.                     ctlpt( E3, 0.150000, 0.000000, 0.001000 ),
  60.                     ctlpt( E3, 0.120000, 0.000000, 0.000000 ),
  61.                     ctlpt( E3, 0.076000, 0.000000, 0.001000 ),
  62.                     ctlpt( E3, 0.032000, 0.000000, 0.007000 ),
  63.                     ctlpt( E3, 0.002000, 0.000000, 0.009000 ),
  64.                     ctlpt( E3, 0.001000, 0.000000, 0.010000 ),
  65.  
  66.                     ctlpt( E3, 0.001000, 0.000000, 0.048000 ),
  67.                     ctlpt( E3, 0.002000, 0.000000, 0.047000 ),
  68.                     ctlpt( E3, 0.010000, 0.000000, 0.046000 ),
  69.                 ctlpt( E3, 0.036000, 0.000000, 0.041000 ),
  70.                 ctlpt( E3, 0.080000, 0.000000, 0.040000 ),
  71.                 ctlpt( E3, 0.110000, 0.000000, 0.041000 ),
  72.                 ctlpt( E3, 0.152000, 0.000000, 0.042000 ),
  73.                 ctlpt( E3, 0.160000, 0.000000, 0.064000 ),
  74.                 ctlpt( E3, 0.152000, 0.000000, 0.080000 ),
  75.                 ctlpt( E3, 0.128000, 0.000000, 0.176000 ),
  76.                 ctlpt( E3, 0.128000, 0.000000, 0.220000 ),
  77.                 ctlpt( E3, 0.140000, 0.000000, 0.276000 ),
  78.                 ctlpt( E3, 0.170000, 0.000000, 0.420000 ),
  79.                 ctlpt( E3, 0.186000, 0.000000, 0.556000 ),
  80.                 ctlpt( E3, 0.132000, 0.000000, 0.652000 ),
  81.                 ctlpt( E3, 0.036000, 0.000000, 0.762000 ),
  82.                 ctlpt( E3, 0.020000, 0.000000, 0.872000 ),
  83.                 ctlpt( E3, 0.016000, 0.000000, 0.976000 ),
  84.                 ctlpt( E3, 0.013000, 0.000000, 1.085000 ),
  85.                 ctlpt( E3, 0.012000, 0.000000, 1.087000 ),
  86.                 ctlpt( E3, 0.032000, 0.000000, 1.088000 ) ),
  87.         list( KV_OPEN ) );
  88.  
  89. wbottle = surfrev( cross );
  90. color( wbottle, green);
  91. attrib( wbottle, "reflect", 0.2 );
  92. attrib( wbottle, "transp", 0.45 );
  93. attrib( wbottle, "index", 1.5 );
  94.  
  95. cross = torus( 
  96.         vector( 0.0, 0.0, 0.872 ), 
  97.         vector( 0.0, 0.0, 1.0 ),
  98.         0.04, 
  99.         0.01 ); 
  100. wedge = cross;
  101. color( wedge, green);
  102. attrib( wedge, "reflect", 0.2 );
  103. attrib( wedge, "transp", 0.45 );
  104. attrib( wedge, "index", 1.5 );
  105.  
  106. # bottle cover
  107.  
  108. cross = ctlpt( E3, 0.000, 0.0, 1.1 )   +
  109.         ctlpt( E3, 0.040, 0.0, 1.1 )   +
  110.     ctlpt( E3, 0.040, 0.0, 1.0 )  +
  111.     ctlpt( E3, 0.036, 0.0, 1.0 )  +
  112.     ctlpt( E3, 0.036, 0.0, 1.096 ) +
  113.     ctlpt( E3, 0.000, 0.0, 1.096 );
  114.     
  115. wcover =  surfrev( cross );
  116. color( wcover, cyan );
  117. attrib( wcover, "reflect", 0.5 );
  118. attrib( wcover, "transp", 0.01 );
  119. attrib( wcover, "index", 1.8 );
  120.  
  121. # hand out plate
  122.  
  123. cross = cbspline( 3,
  124.               list(
  125.                     ctlpt( E3, 0.988000, 0.000000, 0.060000 ),
  126.                     ctlpt( E3, 0.988000, 0.000000, 0.060000 ),
  127.                     ctlpt( E3, 0.900000, 0.000000, 0.060000 ),
  128.                     ctlpt( E3, 0.916000, 0.000000, 0.000000 ),
  129.                     ctlpt( E3, 0.812000, 0.000000, 0.000000 ),
  130.                     ctlpt( E3, 0.000000, 0.000000, 0.000000 ) ),
  131.         list( KV_OPEN ) );
  132. cross2 = cross * trans( vector( 0.0, 0.0, 0.03) );
  133. wplate = surfrev( 
  134.         ( -cross + ctlpt( E3, 0.988, 0.0, 0.08 ) + cross2 ) *
  135.         trans( vector( 0.0, 0.0, -0.03 ) ) *
  136.         scale( vector( 0.8, 0.8, 0.8 ) ) );
  137.  
  138.  
  139. color( wplate, yellow );
  140. attrib( wplate, "reflect", 0.8 );
  141. attrib( wplate, "transp", 0.01 );
  142. attrib( wplate, "index", 1.9 );
  143.  
  144.  
  145. wglasses = list( 
  146.         wbottle, 
  147.         wcover,
  148.         wedge, 
  149.         wplate, 
  150.         wglass1, 
  151.         wglass2, 
  152.         wglass3, 
  153.         wglass4 );
  154.  
  155. #
  156. # View it all and dump it.
  157. #
  158. #
  159. # Go to single buffer since this one is slow.
  160. #
  161. #viewstate( "DblBuffer" );
  162.  
  163. interact( wglasses );
  164. view( list( view_mat ), on );
  165. save( "wglasses", wglasses );
  166.  
  167.